package ar.edu.untref.lp1.plomeria.mapas.gui.controladores;

import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;

import ar.edu.untref.lp1.plomeria.modelos.Material;

public class DrawMap extends JPanel {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	BufferedImage image;
	BufferedImage[] pipes;
	
	int tileSize = 64;

	String imageSourcePath = System.getProperty("user.dir")
			+ "/src/ar/edu/untref/lp1/plomeria/mapas/gui/recursos/imagenes/64x64/";
	static Material[][] mapa;

	public DrawMap(Material[][] materials) {
		mapa = materials;
		JFrame frame = new JFrame("Display image");

		//Panel panel = new DrawMap( materials);
		frame.getContentPane().add(this);
		frame.setResizable(true);
		frame.setExtendedState(3);
		frame.setSize(tileSize * materials.length , tileSize * materials[0].length  );
		frame.setVisible(true);
		System.out.println(materials);
		
		/* setup de matriales como buffered images */
		setPipesImages();
		
		
		//loadMapa();
		
		/*
		 * String unFile =
		 * "/home/claudio/Dropbox/untref/workspace/LaMadejaDeCodigo/src/ar/edu/untref/lp1/plomeria/mapas/gui/recursos/imagenes/tuboCodoInfDer.png"
		 * ; File input = new File(unFile); this.image = ImageIO.read(input); }
		 * catch (IOException ie) { System.out.println("Error:" +
		 * ie.getMessage()); }
		 */
	}

	public void paint(Graphics g) {
		BufferedImage casillero = null;
		for (int i = 0; i < mapa.length; i++) {
			for (int j = 0; j < mapa[0].length; j++) {
				switch (mapa[i][j]) {
				case LADRILLO:
					casillero = pipes[0];
					break;
				case CAÑO_ABAJO_DERECHA:
					casillero = pipes[1];
					break;
				case CAÑO_ABAJO_IZQUIERDA:
					casillero = pipes[2];
					break;
				case CAÑO_ARRIBA_DERECHA:
					casillero = pipes[3];
					break;
				case CAÑO_ARRIBA_IZQUIERDA:
					casillero = pipes[4];
					break;
				case CAÑO_HORIZONTAL:
					casillero = pipes[5];
					break;
				case CAÑO_VERTICAL:
					casillero = pipes[6];
					break;
				}
				g.drawImage(casillero, tileSize * i, tileSize * j, null);
				System.out.println(i+":"+j);
			}
		}
	}
	
	public void setPipesImages(){
		String[] listaDeImagenes = new String[7];
		listaDeImagenes[0] = "ladrillo.png";
		listaDeImagenes[1] = "tuboCodoInfDer.png";
		listaDeImagenes[2] = "tuboCodoInfIzq.png";
		listaDeImagenes[3] = "tuboCodoSupDer.png";
		listaDeImagenes[4] = "tuboCodoSupIzq.png";
		listaDeImagenes[5] = "tuboHorizontal.png";
		listaDeImagenes[6] = "tuboVertical.png";

		loadImagesSet(imageSourcePath, listaDeImagenes);
	}
	
	public void loadImagesSet(String path, String[] imagesList) {
		File input;
		pipes = new BufferedImage[imagesList.length];

		for (int i = 0; i < imagesList.length; i++) {
			input = new File(path + imagesList[i]);
			System.out.println(input);
			try {
				pipes[i] = ImageIO.read(input);
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

}